spinbutton: Fix right and middle click on +/- buttons
authorTimm Bäder <mail@baedert.org>
Wed, 1 Feb 2017 20:03:39 +0000 (21:03 +0100)
committerTimm Bäder <mail@baedert.org>
Wed, 1 Feb 2017 20:05:27 +0000 (21:05 +0100)
Tell the gesture that we handle all buttons and actually claim the
gesture in the ::pressed handler

gtk/gtkspinbutton.c

index c0babe6dc4279e4e05b26ac7632c0eaf64bb3a8a..b0b15c7b116c83cd507975315190fa80aa28de3d 100644 (file)
@@ -761,6 +761,8 @@ button_pressed_cb (GtkGestureMultiPress *gesture,
 
   gtk_widget_grab_focus (GTK_WIDGET (spin_button));
 
+  gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED);
+
   if (gtk_editable_get_editable (GTK_EDITABLE (spin_button)))
     {
       int button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture));
@@ -856,6 +858,7 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
   gtk_box_gadget_insert_widget (GTK_BOX_GADGET (priv->gadget),
                                 -1, priv->down_button);
   priv->down_click_gesture = gtk_gesture_multi_press_new (GTK_WIDGET (priv->down_button));
+  gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->down_click_gesture), 0);
   gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (priv->down_click_gesture), FALSE);
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (priv->down_click_gesture),
                                               GTK_PHASE_CAPTURE);
@@ -869,6 +872,7 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
   gtk_box_gadget_insert_widget (GTK_BOX_GADGET (priv->gadget),
                                 -1, priv->up_button);
   priv->up_click_gesture = gtk_gesture_multi_press_new (GTK_WIDGET (priv->up_button));
+  gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->up_click_gesture), 0);
   gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (priv->up_click_gesture), FALSE);
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (priv->up_click_gesture),
                                               GTK_PHASE_CAPTURE);